Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This has been bothering me (and likely many other users) since its introduction in #57
It used to be that the
event.set(xpath_dest, data)
was protected by existing after thereturn if value.is_a?(Array) && value.length == 0
(which is now anext
) and within thenormalized_nodeset.each
loopNow, data is initialized and
event.set(xpath_dest, data)
occurs regardless of what happens within the loop. The result is empty event fields being set where in the past, nothing would be set.The repercussions are pretty significant for anyone relying on xml xpath results for subsequent filter plugins e.g. geoip
So far this change has forced me to use methods similar to this literally anytime I dare to use xml and the cost is unnecessary.
No testing has been been performed on this change (except for the included rspec test which is passing), however given the above explanation the logic is pretty straight forward.
e.g.
^ shouldn't return anything
Solves #61